﻿Public Class LoginForm
    Inherits System.Web.UI.UserControl

    Public ConnectionString As String = ConfigurationManager.AppSettings("ConnectionString").ToString
    Public objData As New DatabaseClass(ConnectionString)
    Public objFunction As New FunctionClass
    Public objAlert As New AlertClass
    Public objConfig As New Configs
    Dim Sql As String = ""

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            If (Session("CusUserName") <> Nothing) Or (Session("CusUserName") <> "") Or (Session("CusFullname") <> Nothing) Or (Session("CusFullname") <> "") Then
                notLoginCus.Visible = False
                doLoginCus.Visible = True
                spFullname.InnerHtml = Session("CusFullname").ToString
            Else
                notLoginCus.Visible = True
                doLoginCus.Visible = False
            End If

        Catch ex As Exception

        End Try
    End Sub

#Region "Các hàm tự viết"

    ' Kiểm tra dữ liệu nhập trên Form
    Public Function chkField() As Boolean
        Dim flag = True
        If txtUser.Text = "" Then
            flag = False
            objAlert.ErrorBox(Page, "Hãy nhập giá trị cho mục Tài khoản.")
            Return flag
        End If
        If Not objFunction.IsAlphaNumeric(txtUser.Text) Then
            flag = False
            objAlert.ErrorBox(Page, "Tài khoản chỉ bao gồm các chữ cái: A-Z, a-z và số 0-9.")
            Return flag
        End If
        If txtPassword.Text = "" Then
            flag = False
            objAlert.ErrorBox(Page, "Hãy nhập Password.")
            Return flag
        End If
        If Not objFunction.IsAlphaNumeric(txtPassword.Text) Then
            flag = False
            objAlert.ErrorBox(Page, "Password chỉ bao gồm các chữ cái: A-Z, a-z và số 0-9.")
            Return flag
        End If
        Return flag
    End Function

#End Region

    ' Xu ly su kien login
    Private Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim user As String = ""
        Dim pass As String = ""

        user = txtUser.Text
        pass = txtPassword.Text

        ' Goi ham kiem tra Form
        If Not chkField() Then
            Exit Sub
        End If

        Try
            Sql = "spo_CusLogin "
            Sql &= objFunction.FieldCheck(user) & ", "
            Sql &= objFunction.FieldCheck(pass)
            'Response.Write(sql)
            'Response.End()

            objData.ExeReader(Sql)
            If objData.dataRead.Read Then
                'Đăng nhập thành công
                Session("CusID") = objData.dataRead("CusID")
                Session("CusUserName") = objData.dataRead("CusUserName")
                Session("CusEmail") = objData.dataRead("CusEmail")
                'Session("SessionId") = Guid.NewGuid().ToString
                Session("CusPhone") = objData.dataRead("CusPhone")
                Session("CusFullname") = objData.dataRead("CusFullname")
                Session("CusAddress") = objData.dataRead("CusAddress")
                Session("CusIdCard") = objData.dataRead("CusIdCard")
                Session("CusStatus") = objData.dataRead("CusStatus")
                Response.Redirect("/")
            Else
                objAlert.ErrorBox(Page, "Tên truy nhập hoặc mật khẩu không đúng.")
                Exit Sub
            End If
        Catch ex As Exception
            If objConfig.Developer.Equals("1") Then
                objAlert.ErrorBox(Page, "File: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.DeclaringType.Name & _
                                  " --- Function: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.Name & _
                                  " --- Mess: " & ex.Message.Replace("'", """"))
            Else
                objAlert.ErrorBox(Page, "Lỗi kỹ thuật, hãy thông báo lại với Admin, xin cảm ơn.")
            End If
            'objAlert.ErrorBox(Page, ex.Message)
        End Try
    End Sub

    ' Xu ly su kien logout
    Private Sub btnLogout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogout.Click
        Try
            Session("CusID") = ""
            Session("CusUserName") = ""
            Session("CusEmail") = ""
            Session("CusPhone") = ""
            Session("CusFullname") = ""
            Session("CusAddress") = ""
            Session("CusIdCard") = ""
            Session("CusStatus") = ""
            Response.Redirect("/")
        Catch ex As Exception

        End Try
    End Sub
End Class